Guide to rotating objects.

This is meant as a preliminary guide to get you used to the idea of rotaing objects. These are some of  the hardest things to create (properly) and require some new ways of thinking. These are fully compatible with Hipnotic's (now Ritual) 'Scourge of Armagon' Mission Pack 1. You can get example map files from http://www.ritual.com/

SECTION#1 -Making a rotating entity:

STEP 1. Make a brush or group of brushes to rotate.

STEP 2. Place an info_rotate entity at the centre of rotation. Give it a targetname

STEP 3. Convert  the brush(es) from step#1 into a rotate_object, give it a targetname, and set it's target to the info_rotate from step#2

STEP 4. Create a func_rotate_entity - placement doesn't matter, but it's a good idea to put it near the object it's related to (directly above the info_rotate seems like the best spot). Set  it's target to the rotate_object from step #3 and fill in the rest of the data. NOTE: the 'rotate rate' must be in this format '0 0 0' each number controls the rate of rotaion in each axis (x y z) - the higher the number, the faster the rotation. Positive numbers are clockwise and negative numbers are counter-clockwise. You can also target this entity from a button to start/stop the rotaion, but you'll also have to set it's 'TOGGLE' (and possibly 'START_ON') spawnflag(s).

STEP 5. Build!

You should now have a continuous rotating object, doors are similar to set up.  Rotating platforms are similar but need path_rotate entities to follow They are a pain to setup and are not covered here.

If you require a player to interact with the object, colision detection is the next step.

SECTION#2 - Setting up colision detection on rotating objects:

Quake cannot detect colisions with rotating bsp entities so Hipnotic made an ingenious little hack that allows you to follow the rotating brush with a series of moving, invisible clip walls to emulate colision.

STEP 1. All you have to do is draw brushes that surrond the rotaing brush, covert them to func_movewall entities and target the rotate_object. YOU MUST PRACTICE TO GET THIS RIGHT!

Tips
- Use the 'VISIBLE' spawn flag so you can see what is actually going on.
- You must use A LOT of func_movewalls for accurate colisions
- You can get some cool effects by using visible func_movewalls - you may not need a visible rotate_object at all!